package com.example.android_day01.Dome

// 变量
// 变量：可以变化的量
// 格式：var 变量名：数据类型 = 初始值
// 注意：
// 1. 变量名可以是任意合法的标识符
// 2. 数据类型可以是任意合法的类型
// 3. 初始值可以省略，但是如果省略，必须在定义时指定数据类型
// 4. 变量名必须先定义后使用
// 5. 变量名不能重复定义
// 6. 变量名不能使用关键字
// 7. 变量名不能使用系统函数
// 8. 变量名不能使用系统类
// 9. 变量名不能使用系统接口
// 10. 变量名不能使用系统枚举
// 11. 变量名不能使用系统注解
// 12. 变量名不能使用系统包
// 13. 变量名不能使用系统文件
// 14. 变量名不能使用系统目录
// 15. 变量名不能使用系统特殊字符
// 16. 变量名不能使用系统保留字符


// 文件顶部，类外部
//● const val 是编译时常量, 在编译阶段就会被替换, 因此可以提高性能。
//● 而 val 是运行时常量, 在运行时才会被计算和赋值
const val MAX_COUNT = 100
const val HM_TOKEN = "1a2b3c4d"

fun main() {
    // 定义变量
    var a: Int = 10
    // 打印变量
    println(a)
    // 改变变量的值
    a = 20
    // 打印变量
    println(a)
    // 定义常量
    val b: Int = 50
    // 打印常量
    println(b)
    // 改变常量的值
    // b = 20

    //显式声明一个变量，需要加上类型，类型是字符串 默认值是'天下为公'
    var c: String = "天下为公"
    // 打印变量
    println(c)
    var d = 100   // 可以不加类型，但是必须有初始值
    //模板字符串
    var e = "我是${c}，我是${d}"
    println(e)

    println("$HM_TOKEN,$MAX_COUNT")

}
